ساختار رجیستری

رجیستری دارای یک ساختار درختی است - هرچند ساختاری پیچیده همانند پوشه های مختلف موجود در  هارد دیسک می باشد - که همانند برنامه Windows Explorerمی باشد .

هر شاخه اصلی ( که با یک آیکون پوشه از بقیه مجزا شده است ) کندو (Hive) نامیده می شود و هر کندو نیز دربردارنده کلید هاست (Keys) . هر کلید شامل کلید های دیگر ( گاهی اوقات نیز خود آنها دارای زیر کلیدهای دیگری است ) و به همین ترتیب آن هم شامل مقادیر دیگری است.مقادیر در بردارنده اطلاعات حقیقی است که در رجیستری باقی می ماند. بسته به نوع مفاهیمی که مورد استفاده  قرار می گیرند ، سه نوع مقدار وجود دارد : String, Binary وDWORD

 6 شاخه اصلی که بخش های مختلف اطلاعات را در رجیستری ذخیره می کنند عبارتند از :


    HKEY_CLASSES_ROOT :این شاخه شامل تمام فایل نقشه برداری ضمیمه سازی برای پشتیبانی از ویژگی کشیدن و رها کردن(drag-and-drop) ، اطلاعات مربوط بهOLE، کلیدهای میانبر ویندوز و هر جزء اصلی مربوط به رابط های کاربری ویندوز را در خود جای داده است .


    HKEY_CURRENT_USER: این شاخه به بخشی ازHKEY_USERS مربوط به کاربری که در سیستمLogin کرده است لینک شده و پیوند برقرار می کند و دربردارنده اطلاعاتی همانند نام های Logon، تنظیمات مربوط بهDesktopو نیز تنظیماتStart menuمی باشد.


    HKEY_LOCAL_MACHINE :این شاخه دربردارنده اطلاعات خاص کامپیوتر درباره نوع قطعات سخت افزاری ، نرم افزاری است که برای تمامی کاربرانی که در آن سیستمLoginنمایند مورد استفاده قرار می گیرد.


    HKEY_USERS : این شاخه شامل تنظیمات منحصر به فرد ای است که برای هر یک از کاربران مورد استفاده قرار می گیرد و از کاربری به کاربر دیگر متفاوت است. هر کاربر نیز با یک رابط جانبی همانندs-1-5-18از بقیه جدا می شود.


    HKEY_CURRENT_CONFIG :این شاخه به بخشی ازHKEY_LOCAL_MACHINE که مربوط به ساختار بندی سخت افزار هاست لینک می شود .

هر مقدار رجیستری به یکی از 5 حالت زیر ذخیره می شود:

    REG_BINARY :در این  شیوه مقادیر بصورت ردیف داده های باینری ذخیره می شوند. اغلب اطلاعات اجزاء سخت افزار ها بصورت داده های باینری ذخیره شده و در یک ویرایشگر بصورت قالب بندیhexadecimal دیده می شوند.


    REG_DWORD :این حالت برای داده های 4 بایتی که معمولا مقادیر boolean، همانند "0" برای غیر فعال کردن و "1" برای فعال کردن . از دیگر موارد این حالات  راه انداز دستگاه و سرویس هایی از این نوع هستند . و در REGEDT32 با قالب بندی های binary،hexadecimal وdecimal و در REGEDIT نیز در قالب بندی های hexadecimalو decimal نشان داده می شوند .

    REG_EXPAND_SZ : این حالت رشته داده ای قابل توسعه ای هستند و بصورت رشته ای شامل یک متغیر است که در هنگام فراخوانی توسط یک برنامه کاربردی  جایگزین آن می شوند برای مثال ، در مقادیر زیر :
رشته "%SystemRoot%" با موقعیت  واقعی دایرکتوری که دربردارنده فایل های سیستمیWindows NT است ، جایگزین می شود.


    REG_MULTI_SZ : این حالت درواقع بصورت چند رشته ای است و برای نمایش مقادیری که دربردارنده لیست ها و یا مقادیر چند تایی هستند بکار می رود، و هر عضو بوسیله یک کاراکترNULL از بقیه جدا می شود .البته این حالت از مقادیر تنها در موارد پیشرفته رجیستری همانند REGEDT32 مورد استفاده قرار می گیرد.


    REG_SZ : این حالت نیز یک رشته استاندارد است که برای نمایش مقادیر متنی است که برای خواندن و استفاده افراد  بکار می رود.


مواردی از حالات داده  ها که بوسیله ویرایشگر های  استاندارد رجیستری در دسترس نیستند عبارتند از :

    REG_DWORD_LITTLE_ENDIAN

    REG_DWORD_BIG_ENDIAN

    REG_LINK

    REG_NONE

    REG_QWORD

    REG_QWORD_LITTLE_ENDIAN

    REG_RESOURCE_LIST